:root {
--clr-neutral-100: hsl(0, 0%, 100%);
--clr-primary-100: hsl(205, 15%, 58%);
--clr-primary-400: hsl(215, 25%, 27%);
--clr-primary-800: hsl(217, 33%, 17%);
--clr-primary-900: hsl(218, 33%, 9%);
}
html {
color-scheme: dark;
}
body {
display: grid;
min-block-size: 100vh;
place-content: center;
font-family: system-ui;
font-size: 1.125rem;
background-color: var(--clr-primary-800);
}
.scroller {
max-width: 600px;
}
.scroller__inner {
padding-block: 1rem;
display: flex;
flex-wrap: wrap;
gap: 1rem;
margin: 0;
list-style: none;
}
.scroller__inner li {
padding: 1rem;
background: var(--clr-primary-400);
border-radius: 0.5rem;
box-shadow: 0 0.5rem 1rem -0.25rem var(--clr-primary-900);
}
.scroller[data-animated="true"] {
overflow: hidden;
mask: linear-gradient(90deg, transparent, #fff 20%, #fff 80%, transparent);
}
.scroller[data-animated="true"] .scroller__inner {
width: max-content;
flex-wrap: nowrap;
animation: scroll var(--_animation-duration, 40s) var(--_animation-direction, forwards) linear infinite;
}
.scroller[data-speed="fast"] {
--_animation-duration: 20s;
}
@keyframes scroll {
to {
transform: translate(calc(-50% - 0.5rem));
}
}